package cn.iocoder.an.module.mold.controller.admin.rechecktask.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 复检任务 Response VO")
@Data
@ExcelIgnoreUnannotated
public class RecheckTaskRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "7324")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "复检单号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("复检单号")
    private String code;

    @Schema(description = "图号id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6255")
    @ExcelProperty("图号id")
    private Long drawingNoId;

    @Schema(description = "模具id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30814")
    @ExcelProperty("模具id")
    private Long accountId;

    @Schema(description = "接收人Id", example = "10223")
    @ExcelProperty("接收人Id")
    private Long assigneerId;

    @Schema(description = "复检人Ids")
    @ExcelProperty("复检人Ids")
    private String assigneerIds;

    @Schema(description = "复检人名字")
    @ExcelProperty("复检人名字")
    private String assigneerNames;

    @Schema(description = "复检类型id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25114")
    @ExcelProperty("复检类型id")
    private Long recheckId;

    @Schema(description = "紧急程度Id")
    @ExcelProperty("紧急程度Id")
    private Long urgency;

    @Schema(description = "任务状态", example = "1")
    @ExcelProperty("任务状态")
    private Integer status;

    @Schema(description = "计划复检日期")
    @ExcelProperty("计划复检日期")
    private LocalDateTime nextRecheckTime;

    @Schema(description = "实际复检日期")
    @ExcelProperty("实际复检日期")
    private LocalDateTime realRecheckTime;

    @Schema(description = "任务下达时间")
    @ExcelProperty("任务下达时间")
    private LocalDateTime taskCreateTime;

    @Schema(description = "任务接收时间")
    @ExcelProperty("任务接收时间")
    private LocalDateTime taskReceiveTime;

    @Schema(description = "作业开始时间")
    @ExcelProperty("作业开始时间")
    private LocalDateTime jobStartTime;

    @Schema(description = "任务开始时间")
    @ExcelProperty("任务开始时间")
    private LocalDateTime taskStartTime;

    @Schema(description = "任务结束时间")
    @ExcelProperty("任务结束时间")
    private LocalDateTime taskEndTime;

    @Schema(description = "任务执行时长")
    @ExcelProperty("任务执行时长")
    private Double taskExecutionDuration;

    @Schema(description = "实际开始时间")
    @ExcelProperty("实际开始时间")
    private LocalDateTime actualStartTime;

    @Schema(description = "实际结束时间")
    @ExcelProperty("实际结束时间")
    private LocalDateTime actualEndTime;

    @Schema(description = "实际持续时长")
    @ExcelProperty("实际持续时长")
    private String actualExecutionDuration;

    @Schema(description = "复检完整")
    @ExcelProperty("复检完整")
    private Integer isCompleted;

    @Schema(description = "审核说明", example = "随便")
    @ExcelProperty("审核说明")
    private String auditDescription;

    @Schema(description = "描述", example = "随便")
    @ExcelProperty("描述")
    private String description;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}